package com.whyx.project.openapi.business;

import com.alibaba.fastjson.JSONObject;

import java.text.SimpleDateFormat;

/**
 * 管控开关定义
 */
public class ControlSwitchDefinition extends DistributeEntity {

    /**
     * 消息ID
     **/
    public int messageId;

    /**
     * ID
     **/
    public int id;

    /**
     * 阈值：BYTE1：举升管控开关
     * 00:不修改（维持设备原有状态）
     * 01:打开举升控制功能(控制举升)结合区域
     * 02:关闭举升控制功能
     * BYTE2：超速管控
     * BYTE3：越界违规管控
     * BYTE4：违规卸载管控
     * BYTE5：无证违规管控
     * BYTE6：驾驶员身份不符管控
     * BYTE7：闯禁报警管控
     * BYTE8：预留
     * <p>
     * BYTE2-BYTE8 取值范围说明：
     * 00：不修改（维持设备原有状态）
     * 01:自由状态（出厂默认）——上报平台，内屏不报警，取消车辆控制；
     * 02:管理状态——上报平台，内屏报警提示，取消车辆控制；
     * 03:控制举升——上报平台，内屏报警提示，控制车辆举升；
     * 04：限速——上报平台，内屏报警提示，控制车辆行驶速度；
     * 05：锁车——上报平台，内屏报警提示，控制车辆锁车
     **/
    //举升管控开关
    public int liftSwitch;

    //超速管控
    public int speeding;

    //越界违规管控
    public int beyondBoundsAlarm;

    //违规卸载管控
    public int uploadAlarm;

    //无证违规管控
    public int unlicensedAlarm;

    //驾驶员身份不符管控
    public int driverAlarm;

    //闯禁报警管控
    public int breakAlarm;

    //保留字段
    public int keep;

    public JSONObject toJSONString() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        JSONObject object = new JSONObject();
        object.put("messageId",messageId);
        object.put("id",id);
        object.put("liftSwitch",liftSwitch);
        object.put("speeding",speeding);
        object.put("beyondBoundsAlarm",beyondBoundsAlarm);
        object.put("uploadAlarm",uploadAlarm);
        object.put("unlicensedAlarm",unlicensedAlarm);
        object.put("driverAlarm",driverAlarm);
        object.put("breakAlarm",breakAlarm);
        object.put("keep",keep);
        object.put("distributeMsgTopic",distributeMsgTopic);
        object.put("msgId",msgId);
        object.put("devNo",devNo);
        object.put("requestId",requestId);
        object.put("userId",userId);
        object.put("userName",userName);
        object.put("distributeTime",sdf.format(distributeTime));
        object.put("serialNo",serialNo);
        return object;

    }
}
